home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / pctj8404.arc / SEARCH3.BAS < prev    next >
BASIC Source File  |  1986-09-14  |  896b  |  29 lines

  1. '$$$$$$$$$$$$$$ 
  2. 'Subroutine 
  3. '$$$$$$$$$$$$$$ 
  4. '    This is the basic binary search subroutine. 
  5. '    Input is the table in which to look up (ITABLE), 
  6. '    the number of entries in the table (NTABLE), and 
  7. '    the number whose index is to be found (JKEY).  
  8. '    Output is the index (INDX) such that  
  9. '    TABLE(INDX) = JKEY 
  10. '    BASIC BINARY SEARCH 
  11. 8000 rem Start. 
  12. REM CMP   cmp = 0 
  13.      ilow. = 1 
  14.      ihigh. = ntable 
  15. 8020 rem Loop. 
  16.        imid. = (ihigh.+ilow.)\2    'Integer division truncates! 
  17. REM CMP     cmp = cmp + 1 
  18.        if (itable(imid.) = jkey) then indx   = imid. : return 
  19.        if (itable(imid.) > jkey) then ihigh. = imid. - 1 
  20.        if (itable(imid.) < jkey) then ilow.  = imid. + 1 
  21.      goto 8020 
  22.      return 
  23.